package java_thinking.unit_19._19_1_6;

import java.util.Random;

/**
 * @Desc:   19.6枚举随机选取
 * @author: cww
 * @DateTime: 2019/5/22 20:28
 */

public class Enums {
    private static Random rand = new Random(47);

    /**
     * <T extends Enum<T>> 表示T是一个enum实例
     * ec.getEnumConstants() 就可以得到enum实例的数组
     * @param ec
     * @param <T>
     * @return
     */
    public static <T extends Enum<T>> T random(Class<T> ec) {
        return random(ec.getEnumConstants());
    }

    /**
     * 重载random()就可以在数组中随机选择一个元素即可，最终返回enum类型
     * @param values
     * @param <T>
     * @return
     */
    public static <T> T random(T[] values) {
        return values[rand.nextInt(values.length)];
    }
}
